package com.sporch.model;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.Field;

import java.util.List;

/**
 * @Author: czy
 * @Date: 2019/6/4 15:29
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Document(collection="endpoint_profile")
public class EndpointProfile {
    private String id;

    @Field("application_id")
    private String applicationId;

    @Field("endpoint_key")
    private byte[] endpointKey;

    @Field("endpoint_key_hash")
    private byte[] endpointKeyHash;

    @Field("endpoint_user_id")
    private String endpointUserId;

    @Field("access_token")
    private String accessToken;

    @Field("group_state")
    private List<GroupState> groupState;

    @Field("seqNum")
    private int seqNum;

    @Field("profile_hash")
    private byte[] profileHash;

    @Field("profile_version")
    private String profileVersion;

    @Field("srv_profile_version")
    private String srvProfileVersion;

    @Field("configuration_hash")
    private byte[] configurationHash;

    @Field("configuration_version")
    private int configurationVersion;

    @Field("en_nf_version")
    private int epNfVersion;

    @Field("topic_hash")
    private byte[] topicHash;

    @Field("simple_topic_hash")
    private String simpleTopicHash;

    @Field("system_nf_version")
    private String systemNfVersion;

    @Field("user_nf_version")
    private String userNfVersion;

    @Field("log_schema_version")
    private String logSchemaVersion;

    @Field("ecf_version_state")
    private List<EcfVersionState> ecfVersionState;

    @Field("sdk_token")
    private String sdk_token;

    @Field("user_raw_schema")
    private boolean userRawSchema;

    @Field("opt_lock")
    private long optLock;

}
